package com.meihua.baoleyi.utils;

import android.graphics.Bitmap;
import android.widget.ImageView;

import com.meihua.baoleyi.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;

/**
 * Created by liming on 2017/10/16.
 */

public class MyImageHelperUtil {

    private static MyImageHelperUtil util;
    private DisplayImageOptions options;

    public static MyImageHelperUtil getMyImageHelper() {
        if (util == null) {
            util = new MyImageHelperUtil();
        }
        return util;
    }

    private MyImageHelperUtil() {
    }

    public DisplayImageOptions getOptions(int imgRes) {
        options = new DisplayImageOptions.Builder()
                // 设置图片在下载期间显示的图片
                .showImageOnLoading(imgRes)
                // 设置图片Uri为空或是错误的时候显示的图片
                .showImageForEmptyUri(imgRes)
//                // 设置图片加载/解码过程中错误时候显示的图片
                .showImageOnFail(imgRes)
                // 设置下载的图片是否缓存在内存中
                .cacheInMemory(true)
                // 设置下载的图片是否缓存在SD卡中
                .cacheOnDisc(true)
                // 保留Exif信息
                .considerExifParams(true)
                // 设置图片以如何的编码方式显示
                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
                // 设置图片的解码类型
                .bitmapConfig(Bitmap.Config.RGB_565)
                // .decodingOptions(android.graphics.BitmapFactory.Options
                // decodingOptions)//设置图片的解码配置
                .considerExifParams(true)
                // 设置图片下载前的延迟
                .delayBeforeLoading(-1)// int
                // delayInMillis为你设置的延迟时间
                // 设置图片加入缓存前，对bitmap进行设置
                // .preProcessor(BitmapProcessor preProcessor)
                .resetViewBeforeLoading(false)// 设置图片在下载前是否重置，复位
                // .displayer(new RoundedBitmapDisplayer(20))//是否设置为圆角，弧度为多少
//                .displayer(new FadeInBitmapDisplayer(100))// 淡入
                .build();
        return options;
    }

    /**
     * 给imageview绑定网络图片
     *
     * @param path     网络地址
     * @param view     需绑定的imageview
     * @param imageRes 绑定过程中或失败显示的图片资源
     */
    public MyImageHelperUtil bindImage(String path, ImageView view, int imageRes) {
        ImageLoader.getInstance().displayImage(path, view, getOptions(imageRes));
        return util;
    }

    /**
     * 给imageview绑定网络图片（默认图片为ic_launcher）
     *
     * @param path 网络地址
     * @param view 需绑定的imageview
     */
    public void bindImage(String path, ImageView view) {
        ImageLoader.getInstance().displayImage(path==null?"":path, view, getOptions(R.drawable.ic_launcher));
    }
}
